package com.wrx.club_management_backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wrx.club_management_backend.common.AjaxResult;
import com.wrx.club_management_backend.dto.ApproveClubDTO;
import com.wrx.club_management_backend.entity.Club;

public interface ClubService extends IService<Club> {


    // 获取社团详细信息
    AjaxResult getClubDetail(Long id);

    // 获取社团活动列表
    AjaxResult getClubActivities(Long clubId);

    // 获取社团成员列表
    AjaxResult getClubMembers(Long clubId);

    // 获取社团荣誉列表
    AjaxResult getClubAchievements(Long clubId);

    // 更新社团收藏状态
    AjaxResult updateFavorite(Long clubId, Long userId, Boolean isFavorite);

    // 报名活动
    AjaxResult signupActivity(Long activityId, Long userId);

    // 加入社团
    AjaxResult joinClub(Long clubId, Long userId);

    // 退出社团
    AjaxResult quitClub(Long clubId, Long userId);

    // 任命管理层
    AjaxResult appointManager(Long clubId, Long userId, String position, String department);

    // 解除管理层职务
    AjaxResult dismissManager(Long clubId, Long userId, String position);
    // 获取社团部长信息
    AjaxResult getClubPresident(Long clubId);

    // 获取用户管理的社团列表
    AjaxResult getManagedClubs(Long userId);

    AjaxResult get();

    AjaxResult collected(Long clubId);

    AjaxResult updateStat(Long clubId, int stat);

    AjaxResult isCollected(Long clubId);

    AjaxResult collectedNum(Long clubId);

    AjaxResult hot();

    void removeUser(Long userId, Long clubId);

    AjaxResult num();

    AjaxResult create(Club club);

    AjaxResult getApproveList();

    AjaxResult approve(ApproveClubDTO dto);

    AjaxResult search(ApproveClubDTO dto);
}
